module carrySelect32bits(number1,number2,truecin,truecout,trueout);
	input [31:0] number1;
	input [31:0] number2;
	input truecin;
	wire carryout1, carryout2; 
	wire [31:0] resul1, resul2;
	output truecout;
	output [31:0] trueout;
	
	carryRippleAdder32bits carryin0(.num1(number1),.num2(number2),.cin32(1'b0),.cout32(carryout1),.out32(resul1));
    carryRippleAdder32bits carryin1(.num1(number1),.num2(number2),.cin32(1'b1),.cout32(carryout2),.out32(resul2));
	multiplex multiplex1(.muIn1(resul1),.muIn2(resul2),.muCin2(truecin),.muOut(trueout),.mucout1(carryout1),.mucout2(carryout2),.mucout(truecout));

endmodule	